Soru & Cevap

DataGridView Bulunan Veriyi ComboBox Üzerine Aktarma

06.01.2020 - 05:13

Merhabalar,
C# Üzerinde MouseDown Event İle Verileri ComboBox Üzerinde Listelemekteyim,

        private void CMBUrunCinsi_MouseDown(object sender, MouseEventArgs e)
        {
            eDesktopAlertColor CLRRed = eDesktopAlertColor.Red;
            eAlertPosition PSTTopRight = eAlertPosition.TopRight;

            var UrunCinsiBilgisi = (from X in DB.TBL_UrunCinsi
                                    where X.KayitNo == X.KayitNo
                                    where X.Durum == true
                                    orderby X.UrunCinsi ascending
                                    select new
                                    {
                                        KayitNo = X.KayitNo,
                                        UrunCinsi = X.UrunCinsi
                                    }).ToList();

            try
            {
                if (UrunCinsiBilgisi != null)
                {
                    CMBUrunCinsi.DataSource = UrunCinsiBilgisi;
                    CMBUrunCinsi.DisplayMember = "UrunCinsi";
                    CMBUrunCinsi.ValueMember = "KayitNo";
                }
            }

            catch (Exception EX)
            {
                DesktopAlert.Show("Bir Hata Oluştu : " + EX.ToString(), CLRRed, PSTTopRight);
            }
        }

Daha Sonra Tablo Üzerinde Bulunan Verileri DataGrid Üzerinde Join İle Açıklama Alanlarını Listelemekteyim,
 

        void DataGridGoster()
        {
            var DataGridIcerigi = (from I in DB.TBL_Islemler
                                   join X in DB.TBL_UrunCinsi on I.UrunCinsiReferans equals X.KayitNo
                                   join Y in DB.TBL_Marka on I.MarkaReferans equals Y.KayitNo
                                   join Z in DB.TBL_Model on I.ModelReferans equals Z.KayitNo
                                   where I.KayitNo == I.KayitNo
                                   where X.KayitNo == X.KayitNo
                                   where Y.KayitNo == Y.KayitNo
                                   where Z.KayitNo == Z.KayitNo
                                   select new
                                   {
                                       KayitNo = I.KayitNo,
                                       UrunCinsi = X.UrunCinsi,
                                       Marka = Y.Marka,
                                       Model = Z.Model
                                   }).ToList();

            DGVIslemler.DataSource = DataGridIcerigi;
        }

Görsel kaldırıldı.

Yalnız Seçili Satır Üzerinde Bulunan Verileri ComboBox Üzerine Nasıl Aktarabilirim ?
ComboBox MouseDown Event İle Doldurulduğundan Dolayı Bu İşlemi Nasıl Yapabilirim ?
Düzenleme Sonrasında Seçilen Kayıtların Tekrardan ValueMember Değerini Nasıl Aldırabilirim ?

Sizlerden Bilgi Beklemekteyim, İyi Çalışmalar...

202 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user f.erenyucal
f.erenyucal
18.02.2023 - 01:45

Seçili satırın verilerini ComboBox'a aktarmak için şu adımları izleyebilirsiniz:

  1. DataGrid'de bir satır seçildiğinde tetiklenecek olan SelectionChanged olayını kullanın
  2. Seçilen satırın verilerini ComboBox'a aktarmak için, seçilen satırın DataBoundItem özelliğini alın ve satır verilerini içeren bir nesneye dönüştürün
  3. ComboBox'ın SelectedValue özelliğine seçilen satırın ValueMember özelliğindeki değeri atayın

Aşağıdaki kod örneği, bu işlemi gerçekleştirmek için bir yol sunar:

 

    private void DGVIslemler_SelectionChanged(object sender, EventArgs e)
    {
        if (DGVIslemler.SelectedRows.Count > 0)
        {
        
            var selectedRow = DGVIslemler.SelectedRows[0];
            var urunCinsi = selectedRow.Cells["UrunCinsi"].Value.ToString();
            var marka = selectedRow.Cells["Marka"].Value.ToString();
            var model = selectedRow.Cells["Model"].Value.ToString();

        
            CMBUrunCinsi.Text = urunCinsi;
            CBMarka.Text = marka;
            CBModel.Text = model;

            var kayitNo = selectedRow.Cells["KayitNo"].Value.ToString();
        }
    }